%% Author: Administrator
%% Created: 2012-8-28
%% Description: 统计进程的创建时间
-module(processes).

%%
%% Include files
%%

%%
%% Exported Functions
%%
-export([max/1]).

%%
%% API Functions
%%
max(N) ->
	Max = erlang:system_info(process_limit),
	io:format("Maximum allowed processs : ~p~n", [Max]),
	statistics(runtime),
	statistics(wall_clock),
	L = for(1, N, fun() -> spawn(fun() -> wait() end) end),
	{_, Time1} = statistics(runtime),
	{_, Time2} = statistics(wall_clock),
	lists:foreach(fun(Pid) -> Pid ! die end, L),
	U1 = Time1 * 1000 / N,
	U2 = Time2 * 1000 / N,
	io:format("Process spawn time=~p (~p) microseconds ~n", [U1, U2]).

wait() ->
	receive
		die -> void
	end.

for(N, N, F) -> [F()];
for(I, N, F) -> [F()|for(I+1, N, F)].

%%
%% Local Functions
%%

